#ifndef _BOSS_3_ENTITY_H_
#define _BOSS_3_ENTITY_H_

#include "Boss3Data.h"
#include "AbstractEntity.h"
#include "Boss3ItemEntity.h"
#include "Boss3DoorEntity.h"
#include "BossThreeEntity.h"

#define APPEAR_DELAY_TIME 120

class Boss3Entity : public AbstractEntity
{
public:
	vector<Boss3ItemEntity*>* items;
	Boss3DoorEntity* _door;
	BulletContainer* bulletContainer;
	BossThreeEntity* bossEntity;

	Boss3Entity(int id, int type, double x, double y);

	virtual void initSubRect();
	virtual AbstractEntity* getSubEntity(int index) ;


	/* Set bullet container data */
	virtual void initBulletContainer();

	virtual void updateBulletContrainer() ;

	virtual void update(long time);

	virtual void draw(long time);

	virtual AbstractData* getAbstractData();
	virtual void updateData(int actions, int actiondata);


	~Boss3Entity();

private:
	Boss3Data* _data;
	int _count;
	bool _inActive;

	void createItems();
};
#endif